import torch

from Environment.EnvUtils import *
from Environment.State import State
from Environment.Action import Action

class GameEnv:
    AGENT = 0
    GOAL = 1
    OBSTACLE_N = 2
    OBSTACLE_E = 3
    OBSTACLE_S = 4
    OBSTACLE_W = 5

    def __init__(self, env_config: Dict[str, Any]) -> None:
        self.height: int = env_config["grid_world_height"]
        self.width: int = env_config["grid_world_width"]
        self.channels: int = 6
        self.obstacle_prob: float = env_config["obstacle_prob"]
        self.obstacle_freq: float = env_config["obstacle_freq"]
        self.n_foods: int = env_config["food_num"]

        self.tensor_size: tuple[int, int, int] = (self.height, self.width, self.channels)
        self.grid_world: torch.Tensor = torch.zeros(*self.tensor_size, dtype=torch.float32, device=device)



